﻿namespace SLNGP.Core.Fitness
{
    public class FitnessFunctionDetails : IFitnessFunctionDetails
    {
        public FitnessFunctionDetails()
        {
            FitnessFunctionOrder = FitnessFunctionOrder.LowerIsBetter;
        }

        /// <summary>
        /// Determines how to regard the calculated fitness of an individual. 
        /// Assuming the Fitness value is IComparable this property determines whether a higher value or lower value is prefered. 
        /// Defaults to LowerIsBetter.
        /// </summary>
        /// <remarks>
        /// In the case of trying to find an optimal solution, a smaller distance from the optimal solution is preffered.
        /// In the case of trying to find the maximum distance traveled, a larger distance is perffered. 
        /// </remarks>
        public FitnessFunctionOrder FitnessFunctionOrder { get; set; }
    }
}